package com.glsc.ngateway.common.api.flowable.dto.task.formData.equipment.domainDto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.glsc.ngateway.common.api.common.dto.BaseEntityDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

/**
 * @author xuchang
 */
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FlowFormEquipmentServerApplyServerDetailDto extends BaseEntityDto {

    private static final long serialVersionUID = -7857026943565205772L;

    @ApiModelProperty(value = "主表ID")
    private Long equipmentServerApplyId;

    @ApiModelProperty(value = "业务系统")
    private String businessName;

    @ApiModelProperty(value = "应用明细(同mx_id)")
    private String applicationDetail;

    @ApiModelProperty(value = "机房")
    private String machineRoom;

    @ApiModelProperty(value = "机柜")
    private String machineCab;

    @ApiModelProperty(value = "单位")
    private String machineUnit;

    @ApiModelProperty(value = "资产编号原")
    private String capitalTyped;

    @ApiModelProperty(value = "资产编号")
    private String capitalType;

    @ApiModelProperty(value = "设备类型")
    private String capitalStyle;

    @ApiModelProperty(value = "品牌")
    private String brand;

    @ApiModelProperty(value = "型号")
    private String brandType;

    @ApiModelProperty(value = "PN/PID")
    private String pnPid;

    @ApiModelProperty(value = "SN")
    private String sn;

    @ApiModelProperty(value = "操作系统")
    private String operationSys;

    @ApiModelProperty(value = "硬盘规格")
    private String diskType;

    @ApiModelProperty(value = "CPU")
    private String cpu;

    @ApiModelProperty(value = "内存")
    private String memory;

    @ApiModelProperty(value = "责任人")
    private String userId;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    @ApiModelProperty(value = "出厂年份")
    private LocalDate ccTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    @ApiModelProperty(value = "维保年份")
    private LocalDate wbTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    @ApiModelProperty(value = "上架时间")
    private LocalDate sjTime;

    @ApiModelProperty(value = "预计使用年限")
    private String planOn;

    @ApiModelProperty(value = "单/双电源")
    private String supportPower;

    @ApiModelProperty(value = "备注")
    private String bz;

    @ApiModelProperty(value = "状态记录")
    private String machineStatus;

    @ApiModelProperty(value = "MAC1")
    private String mac1;

    @ApiModelProperty(value = "MAC2")
    private String mac2;

    @ApiModelProperty(value = "MAC3")
    private String mac3;

    @ApiModelProperty(value = "MAC4")
    private String mac4;

    @ApiModelProperty(value = "MAC5")
    private String mac5;

    @ApiModelProperty(value = "MAC6")
    private String mac6;

    @ApiModelProperty(value = "MAC7")
    private String mac7;

    @ApiModelProperty(value = "MAC8")
    private String mac8;

    @ApiModelProperty(value = "MAC9")
    private String mac9;

    @ApiModelProperty(value = "MAC10")
    private String mac10;

    @ApiModelProperty(value = "MAC11")
    private String mac11;

    @ApiModelProperty(value = "MAC12")
    private String mac12;

    @ApiModelProperty(value = "IP1")
    private String ip1;

    @ApiModelProperty(value = "IP2")
    private String ip2;

    @ApiModelProperty(value = "IP3")
    private String ip3;

    @ApiModelProperty(value = "IP4")
    private String ip4;

    @ApiModelProperty(value = "集群")
    private String qj;

    @ApiModelProperty(value = "维修记录")
    private String fixRecord;

    @ApiModelProperty(value = "维修日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate fixTime;

    @ApiModelProperty(value = "备份情况说明")
    private String bf;

    @ApiModelProperty(value = "业务网段")
    private String networkSegment;

    @ApiModelProperty(value = "ILO")
    private String ilo;

}
